/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.camachosanchez.reportes;

import com.camachosanchez.reportes.bean.EgresosDetallado;
import com.camachosanchez.util.Constantes;
import com.camachosanchez.util.GUIUtil;
import com.camachosanchez.util.ReportUtil;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileOutputStream;
import java.util.List;

/**
 *
 * @author ZULLY
 */
public class _ReporteEgresosDetallado {
    public static String generarReporte(EgresosDetallado egresos) {
        String rutaArchivo = "reportes/egresosDetallado" + "_" + GUIUtil.obtenerFechaDDMMYYYHHMMSS() + ".pdf";
        try {
            PdfPCell cell;
            Document document = new Document(PageSize.A4, 20, 20, 20, 20);
            PdfWriter.getInstance(document, new FileOutputStream(rutaArchivo));
            document.open();
            Paragraph paragraph = new Paragraph();
            paragraph.setAlignment(Element.ALIGN_CENTER);
            document.add(ReportUtil.obtenerCabeceraTabla("REPORTE DETALLADO DE EGRESOS"));
            document.add(new Paragraph("\n"));
            PdfPTable table = new PdfPTable(1);
            table.setWidthPercentage(100);
            Chunk chunk = new Chunk("Desde fecha: " + egresos.getFechaDesde(), Constantes.fuenteCuerpo);
            cell = new PdfPCell(new Phrase(chunk));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setBorder(0);
            table.addCell(cell);
            chunk = new Chunk("Hasta fecha: " + egresos.getFechaHasta(), Constantes.fuenteCuerpo);
            cell = new PdfPCell(new Phrase(chunk));
            cell.setHorizontalAlignment(Element.ALIGN_RIGHT);
            cell.setBorder(0);
            table.addCell(cell);
            document.add(table);
            document.add(new Paragraph("\n"));
            PdfPTable tablaPagos = new PdfPTable(4);
            tablaPagos.setWidthPercentage(100);
            tablaPagos.addCell(ReportUtil.obtenerCeldaCabeceraTabla("PILOTO", Constantes.fuenteTitulos, 1));
            tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica("LLANTA", Constantes.fuenteTitulos, 1));
            tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica("VIGILANTE", Constantes.fuenteTitulos, 1));
            tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica("IMPORTE", Constantes.fuenteTitulos, 1));
            List<String[]> listaEgresos = egresos.getListaEgresos();
            if (listaEgresos != null) {
                for (String[] strings : listaEgresos) {
                    int tipo = Integer.parseInt(strings[0]) ;
                    if(tipo == 1) {
                        tablaPagos.addCell(ReportUtil.obtenerCeldaTexto(strings[1], Constantes.fuenteCuerpo, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[2], Constantes.fuenteCuerpo, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[3], Constantes.fuenteCuerpo, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[4], Constantes.fuenteCuerpo, 1));
                    } else if (tipo == 2) {
                        tablaPagos.addCell(ReportUtil.obtenerCeldaTexto("SUB TOTAL", Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[1], Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[2], Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[3], Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaSinBorde(" ", Constantes.fuenteEtiqueta, 4));
                    } else if (tipo == 3) {
                        tablaPagos.addCell(ReportUtil.obtenerCeldaSinBorde(" ", Constantes.fuenteEtiqueta, 4));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaTexto("TOTAL", Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[1], Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[2], Constantes.fuenteEtiqueta, 1));
                        tablaPagos.addCell(ReportUtil.obtenerCeldaNumerica(strings[3], Constantes.fuenteEtiqueta, 1));
                    }
                }
            }
            document.add(tablaPagos);
            document.close();
        } catch (Exception e) {
            rutaArchivo = null;
        } finally {
            return rutaArchivo;
        }
    }
}
